"""
#编码(encode):将我们能够识别的文字，转换为计算机能够识别的内容
print('你好'.encode())#默认utf-8
#b'\xe4\xbd\xa0\xe5\xa5\xbd'
#将'你好'翻成进制数

#解码（decode）:将计算机能识别的内容，转换为我们能识别的内容

print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode())
#你好
#将计算机语言翻译成我们能看懂的语言

#如何设置编码格式呢？
#下面是两种编码格式

print('你好'.encode('gbk'))
#b'\xc4\xe3\xba\xc3'

print('你好'.encode('utf-8'))
#b'\xe4\xbd\xa0\xe5\xa5\xbd'

#我们可以发现，编码的默认值是和这个utf-8是一样的
#解码也是默认utd-8

print(b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('gbk'))
#浣犲ソ
#这个是我们的解码使用gbk
#这个叫做乱码


#编码和解码格式是不一致的，会导致乱码或者报错
 #我们编码使用gbk就行，但是我们的解码使用gbk就会进行报错


#编码用什么格式，解码就用什么格式
#我们使用gbk模式产生出来的编码就用gbk模式进行解码的操作
#模式是要进行对应的，不然是会报错的
"""

r"""
文件路径：要打开的文件的存储位置
    绝对路径：从盘符开始一直到文件的路径
        如：C:\Users\27890\Desktop\demo.txt
    相对路径：同文件夹下的文件才会进行使用的（同一个文件夹下才能使用相对路径）
        如：demo.txt
    

#我们现在桌面有个文件叫demo.txt文件，那么我们如何打开呢？
#我们先将文件位置进行复制
#"C:\Users\27890\Desktop\demo.txt"


2.关闭文件
"""
r"""
#对文件进行操作的时候，我们的操作

#1.打开文件----open(文件路径)
#打开文件之后会返回一个文件对象，那么我们就需要一个变量进行保存的操作
f=open(r"C:\Users\27890\Desktop\demo.txt")
print(f)
#为什么我们这个会报错呢？
#回想起我们之前的转义字符\
#那么这个的\和后面的字母或者是数字一起组合的话可能有着其他的意思

#那么我们如何进行处理呢？
#我们在整个字符串的前面加上r就可以取消字符串中的转义了
#<_io.TextIOWrapper name='C:\\Users\\27890\\Desktop\\demo.txt' mode='r' encoding='cp936'>


#上面的是绝对路径
#那么我们这个进行相对路径的书写

f1=open('demo.txt')
print(f1)
#<_io.TextIOWrapper name='demo.txt' mode='r' encoding='cp936'>

#这个打开文件的open()有三个参数的
#open(文件路径，mode='r',encodeing='cp936')
"""
r"""
f=open(r"C:\Users\27890\Desktop\demo.txt")
print(f)

f.close()
#查看文件是否关闭：
print(f.closed)
#True

#如果忘记关闭怎么办，我们可以进行自动关闭的操作的
#with open()
with open("demo.txt")as f:
    print(f'1{f.closed}')
    #在with open里面就是出于打开的状态，出来的话就自动进行关闭了
print(f'2{f.closed}')
#1False
#2True
#as将open("demo.txt")打开的文件对象绑定到变量f上。
#这意味着在with语句的代码块中，你可以使用变量f来访问这个文件对象。

"""
"""
with open("demo.txt") as f:
    print(f.read())
#123456
#通过这种方法我们能将文件中的数据进行读取

with open("demo.txt") as f:
    print(f.read(3))
#123
"""
"""
#我们在demo.txt文件中添加中文通过这种方法进行读取的话就会报错，这是为什么呢？

#根据报错的信息，我们需要对这个打开的时候的编码格式进行改变
with open("demo.txt",encoding='utf-8') as f:
    print(f.read())
'''
123456
这是一个demo.txt文件
'''
"""
"""
with open("demo.txt",encoding='utf-8') as f:
    print(f.read(2))
    print('-'*30)
    print(f.read())

'''
12
------------------------------
3456
这是一个demo.txt文件
'''
#我们在第二次读取的时候并没有从头开始
#而是从上一次读完的下一个位置开始的

"""
"""

    print(f.readline())#读取第一行
    #123456
    print(f.readline())#读取第二行
    #这是一个demo.txt文件
"""
'''
with open("demo.txt",encoding='utf-8') as f:
    print(f.readlines())
        
#['123456\n', '这是一个demo.txt文件']    

'''
'''
with open("demo.txt",encoding='utf-8') as f:
    f.write('胡云凯')
    '''
r'''
Traceback (most recent call last):
  File "C:\Users\27890\Desktop\15.文件操作.py", line 154, in <module>
    f.write('胡云凯')
io.UnsupportedOperation: not writable
'''
#这里进行了报错
'''
with open("demo1.txt",mode='w',encoding='utf-8') as f:
    f.write('胡云凯666')
    '''
'''
with open("demo1.txt",mode='a',encoding='utf-8') as f:
    f.write('凯子坚持C')

'''
'''
with open("demo1.txt",mode='r+',encoding='utf-8') as f:
    f.write('\n凯子坚持C')
    print(f.readlines())

    f.write('\nhi')
    print(f.read())

#['\n', '凯子坚持C子坚持C\n', '凯子坚持C\n', '凯子坚持C\n', 'hi']
    print(f.tell())
    #97
    f.seek(0,0)
    print(f.tell())
    print(f.read())
'''

'''
['\n', '凯子坚持C子坚持C\n', '凯子坚持C\n', '凯子坚持C\n', 'hi\n', '凯子坚持C\n', 'hi\n', '凯子坚持C\n', 'hi\n', '凯子坚持C\n', 'hi']

135
0

凯子坚持C子坚持C
凯子坚持C
凯子坚持C
hi
凯子坚持C
hi
凯子坚持C
hi
凯子坚持C
hi
凯子坚持C
hi
'''




'''
with open("demo1.txt",mode='a+',encoding='utf-8') as f:
    
    print(f.tell())
    f.seek(0,0)
    print(f.read())

#135
'''
'''
import io

s=io.StringIO()#生成一个字符串类型的临时文件
s.write('hello')
s.seek(0,0)#将光标放到开头
print(s.read())

'''
##import io
##b=io.BytesIO()#生成一个字节类型的临时文件
###我们需要进行编码操作
##b.write('你好'.encode())#只能写入字节数据，需要进行编码
##print(b.getvalue())
###b'\xe4\xbd\xa0\xe5\xa5\xbd'
###字节的访问就是getvalue()
###如果像变成我们能看懂的东西，那么就进行解码操作
##print(b.getvalue().decode())
###你好
'''
import os
os.rename("凯子坚持C",'小凯')
'''

r'''
import os
print(os.getcwd())#获取当前文件的位置
#C:\Users\27890\Desktop

'''
"""
import os
print(os.listdir())#获取当前文件夹内所有的内容
'''

'''
"""
"""
import os
os.rmdir("小凯")#删除空文件夹

"""
with open(r"C:\Users\27890\Desktop\微信图片_20240906224155.png",mode='rb') as f:
    data=f.read()
    

#我们这里不能在用rb了，因为我们要复制这个图片了，所以我们用wb
with open(r"C:\Users\27890\Desktop\微信图片_20240906224155附件.png",mode='wb') as f:
    f.write(data)
    









































